Replicating data to a secondary remote site is an approach commonly used for the purpose of data protection and mirroring. For some organizations, a secondary copy may not be sufficient and a tertiary copy or even more remote copies may be required, especially when the organization is highly distributed or when a higher level of data protection is required.
There are two principal solutions for replicating content to multiple locations. According to one solution, called one-to-many replication, a single source system replicates the same content in parallel to multiple remote sites. A second solution suggests cascading the copying process, where the copying is done by a chain of sequential hops across multiple systems, i.e., the source system transmits the content to a second site, and only when the content is received at the second site, the second site can continue the content's propagation towards a third system.
In the first solution of one-to-many, where multiple replications run simultaneously by the source system, the content arrives at the destination sooner than it would if using the sequential process of the cascaded replication, where in the latter, each replication to the next hop can start only when the previous replication has completed, causing a substantial latency (from the start of the copying process until received by all destinations). On the other hand, the one-to-many replication utilizes more network bandwidth at the source system and may also consume more computing and memory resources of the source system. Furthermore, when the replication to one of the multiple destinations proceeds faster than the replication towards a second destination, the replication process will be either slowed down to the pace of the slower destination or the replication process will lose its parallelism advantage and may become more complicated if the replication towards each destination is handled autonomously, so as to adjust to the pace of each destination.
There is a need for a copying process towards multiple destinations that balances the workload across participating systems, while minimizing the latency of copying to all destinations.